home *** CD-ROM | disk | FTP | other *** search
/ By Popular Request 2.0 / By Popular Request 2.0 (Arsenal Computer).ISO / amiga_1 / amytemp.lha / AmigaTemp / ARexxScr / WatchAlarm.rexx < prev    next >
OS/2 REXX Batch file  |  1995-05-20  |  3KB  |  68 lines

  1. /* AmigaTemp ARexx                                        */
  2. /* Waits on ARexx temperature alarm. Break with Control+C */
  3.  
  4. call addlib('rexxsupport.library',0,-30,0)      /* Needed by Delay */
  5.  
  6. /* Start */
  7. st = Show(P, 'AmigaTemp')                       /* Is program running? */
  8. if st == 0 then                                 /* No... */
  9. do
  10.    Address COMMAND                     
  11.    
  12.    'CCT1.1:CCT CX_POPUP=NO'                     /* Start AmigaTemp. Don't POPUP */
  13.    if rc > 0 then do                            /* Program not found... */
  14.       Say "Can't start AmigaTemp"
  15.       exit
  16.    end   
  17.    
  18.    do 2 while ~Show(P, 'AmigaTemp')             /* Wait until program has started or at least 20 sek */
  19.       'waitforport AmigaTemp'
  20.    end
  21.    
  22.    if ~Show(P, 'AmigaTemp') then do             /* Something is wrong... */
  23.       Say "Can't start AmigaTemp"
  24.       exit
  25.    end
  26. end   
  27.  
  28. /* Main */
  29. Options RESULTS                                 /* Retrive the string result field */
  30. Address 'AmigaTemp'                             /* Portname for AmigaTemp (Case sensitive) */
  31.                   
  32. 'Version'; Say result
  33. Say 'Break with Control+C'
  34.  
  35. 'NumSensor'; numsensor = result                 /* Number Of Sensors */
  36.  
  37. do until 1 = 0                                  /* Loop for ever */
  38.    
  39.    do i=1 to numsensor
  40.       'Alarm' i                                 /* Check alarm */            
  41.       If rc == 0 then                           /* rc == 0 if sensor is connected */ 
  42.       do
  43.          If result == 'Max' then                /* Current temperature > max temperature */ 
  44.          do
  45.             'Name'         i; name = result     /* Name of sensor */
  46.             'Temp'         i; temp = result     /* Current temperature */
  47.             'AlarmMax'     i; max = result      /* Max temperature */
  48.             'AlarmTextMax' i; textmax = result  /* Text for max temperature */
  49.       
  50.             Say name || ':' || ' Max : ' || max || ' Current : ' || temp || ' ' || textmax
  51.          end
  52.          If result == 'Min' then                /* Current temperature < min temperature */
  53.          do
  54.             'Name'         i; name = result     /* Name of sensor */
  55.             'Temp'         i; temp = result     /* Current temperature */
  56.             'AlarmMin'     i; min = result      /* Max temperature */
  57.             'AlarmTextMin' i; textmin = result  /* Text for max temperature */
  58.       
  59.             Say name || ':' || ' Min : ' || min || ' Current : ' || temp || ' ' || textmin
  60.          end
  61.       end   
  62.    end i
  63.    
  64.    call Delay(3*50)                             /* Wait 3 sec */
  65. end  
  66.  
  67. if st == 0 then 'Quit'                          /* Quit AmigaTemp if we started it */
  68.